diff --git a/Marlin/src/gcode/bedlevel/mbl/G29.cpp b/Marlin/src/gcode/bedlevel/mbl/G29.cpp
index 8c970e89b0c454394d90395729b213f0461bb30b..d0c1e7e799ae73cbd8e07e8afa4dfe27f6259e17 100644
--- a/Marlin/src/gcode/bedlevel/mbl/G29.cpp
+++ b/Marlin/src/gcode/bedlevel/mbl/G29.cpp
@@ -160,7 +160,8 @@ void GcodeSuite::G29() {
       if (parser.seenval('X')) {
         px = parser.value_int() - 1;
         if (!WITHIN(px, 0, GRID_MAX_POINTS_X - 1)) {
-          SERIAL_PROTOCOLLNPGM("X out of range (1-" STRINGIFY(GRID_MAX_POINTS_X) ").");
+          SERIAL_PROTOCOLPAIR("X out of range (0-", int(GRID_MAX_POINTS_X));
+          SERIAL_PROTOCOLLNPGM(")");
           return;
         }
       }
@@ -172,7 +173,8 @@ void GcodeSuite::G29() {
       if (parser.seenval('Y')) {
         py = parser.value_int() - 1;
         if (!WITHIN(py, 0, GRID_MAX_POINTS_Y - 1)) {
-          SERIAL_PROTOCOLLNPGM("Y out of range (1-" STRINGIFY(GRID_MAX_POINTS_Y) ").");
+          SERIAL_PROTOCOLPAIR("Y out of range (0-", int(GRID_MAX_POINTS_Y));
+          SERIAL_PROTOCOLLNPGM(")");
           return;
         }
       }