diff --git a/launch/tier4_map_launch/launch/map.launch.xml b/launch/tier4_map_launch/launch/map.launch.xml
index 56ad5b01c5024..8efc1a7b985aa 100644
--- a/launch/tier4_map_launch/launch/map.launch.xml
+++ b/launch/tier4_map_launch/launch/map.launch.xml
@@ -8,6 +8,7 @@
   <!-- Parameter files -->
   <arg name="pointcloud_map_loader_param_path"/>
   <arg name="lanelet2_map_loader_param_path"/>
+  <arg name="map_projection_loader_param_path"/>
 
   <!-- whether use intra-process -->
   <arg name="use_intra_process" default="false"/>
@@ -59,6 +60,7 @@
     </node>
 
     <include file="$(find-pkg-share map_projection_loader)/launch/map_projection_loader.launch.xml">
+      <arg name="param_path" value="$(var map_projection_loader_param_path)"/>
       <arg name="map_projector_info_path" value="$(var map_projector_info_path)"/>
       <arg name="lanelet2_map_path" value="$(var lanelet2_map_path)"/>
     </include>
diff --git a/map/map_projection_loader/CMakeLists.txt b/map/map_projection_loader/CMakeLists.txt
index 700d468ed4431..f6102a1efa795 100644
--- a/map/map_projection_loader/CMakeLists.txt
+++ b/map/map_projection_loader/CMakeLists.txt
@@ -59,4 +59,5 @@ endif()
 
 ament_auto_package(INSTALL_TO_SHARE
   launch
+  config
 )
diff --git a/map/map_projection_loader/README.md b/map/map_projection_loader/README.md
index 1887a1cd8934f..848fcfba95f14 100644
--- a/map/map_projection_loader/README.md
+++ b/map/map_projection_loader/README.md
@@ -82,11 +82,10 @@ map_origin:
 
 ## Published Topics
 
-- ~/map_projector_info (tier4_map_msgs/MapProjectorInfo) : Topic for defining map projector information
+- `~/map_projector_info` (tier4_map_msgs/MapProjectorInfo) : This topic shows the definition of map projector information
 
 ## Parameters
 
-| Name                    | Type        | Description                                                                      |
-| :---------------------- | :---------- | :------------------------------------------------------------------------------- |
-| map_projector_info_path | std::string | A path to map_projector_info.yaml (used by default)                              |
-| lanelet2_map_path       | std::string | A path to lanelet2 map (used only when `map_projector_info_path` does not exist) |
+Note that these parameters are assumed to be passed from launch arguments, and it is not recommended to directly write them in `map_projection_loader.param.yaml`.
+
+{{ json_to_markdown("map/map_projection_loader/schema/map_projection_loader.schema.json") }}
diff --git a/map/map_projection_loader/config/map_projection_loader.param.yaml b/map/map_projection_loader/config/map_projection_loader.param.yaml
new file mode 100644
index 0000000000000..6ec300309a308
--- /dev/null
+++ b/map/map_projection_loader/config/map_projection_loader.param.yaml
@@ -0,0 +1,4 @@
+/**:
+  ros__parameters:
+    map_projector_info_path: $(var map_projector_info_path)
+    lanelet2_map_path: $(var lanelet2_map_path)
diff --git a/map/map_projection_loader/launch/map_projection_loader.launch.xml b/map/map_projection_loader/launch/map_projection_loader.launch.xml
index fc625e3162911..a6570b69d3498 100644
--- a/map/map_projection_loader/launch/map_projection_loader.launch.xml
+++ b/map/map_projection_loader/launch/map_projection_loader.launch.xml
@@ -1,9 +1,10 @@
 <launch>
+  <arg name="param_path" default="$(find-pkg-share map_projection_loader)/config/map_projection_loader.param.yaml"/>
+
   <arg name="map_projector_info_path" description="Path to the yaml file"/>
   <arg name="lanelet2_map_path" description="Path to the lanelet2 map file"/>
 
   <node pkg="map_projection_loader" exec="map_projection_loader" name="map_projection_loader" output="screen">
-    <param name="map_projector_info_path" value="$(var map_projector_info_path)"/>
-    <param name="lanelet2_map_path" value="$(var lanelet2_map_path)"/>
+    <param from="$(var param_path)" allow_substs="true"/>
   </node>
 </launch>
diff --git a/map/map_projection_loader/schema/map_projection_loader.schema.json b/map/map_projection_loader/schema/map_projection_loader.schema.json
new file mode 100644
index 0000000000000..bb7fe5d2910ad
--- /dev/null
+++ b/map/map_projection_loader/schema/map_projection_loader.schema.json
@@ -0,0 +1,38 @@
+{
+  "$schema": "http://json-schema.org/draft-07/schema#",
+  "title": "Parameters for map_projection_loader",
+  "type": "object",
+  "definitions": {
+    "map_projection_loader": {
+      "type": "object",
+      "properties": {
+        "map_projector_info_path": {
+          "type": "string",
+          "description": "The path where map_projector_info.yaml is located",
+          "default": "$(var map_projector_info_path)"
+        },
+        "lanelet2_map_path": {
+          "type": "string",
+          "description": "The path where the lanelet2 map file (.osm) is located",
+          "default": "$(var lanelet2_map_path)"
+        }
+      },
+      "required": ["map_projector_info_path", "lanelet2_map_path"],
+      "additionalProperties": false
+    }
+  },
+  "properties": {
+    "/**": {
+      "type": "object",
+      "properties": {
+        "ros__parameters": {
+          "$ref": "#/definitions/map_projection_loader"
+        }
+      },
+      "required": ["ros__parameters"],
+      "additionalProperties": false
+    }
+  },
+  "required": ["/**"],
+  "additionalProperties": false
+}