diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h
index a0f996887a6505ce9c14dfeebf90a0f57dd258f5..3aa0aff67f1b44d2e41fd476728e5e457e8d97ee 100644
--- a/Marlin/Marlin.h
+++ b/Marlin/Marlin.h
@@ -261,7 +261,7 @@ extern int feedrate_percentage;
 
 #define MMM_TO_MMS(MM_M) ((MM_M)/60.0)
 #define MMS_TO_MMM(MM_S) ((MM_S)*60.0)
-#define MMM_SCALED(MM_M) ((MM_M)*feedrate_percentage/100.0)
+#define MMM_SCALED(MM_M) ((MM_M)*feedrate_percentage*0.01)
 #define MMS_SCALED(MM_S) MMM_SCALED(MM_S)
 #define MMM_TO_MMS_SCALED(MM_M) (MMS_SCALED(MMM_TO_MMS(MM_M)))
 
diff --git a/Marlin/enum.h b/Marlin/enum.h
index cbdfd4a417ed40fb37ef803ab7168039ef43b4ba..a51d208aee71f7ccbff80300feadb6aaf7b1b063 100644
--- a/Marlin/enum.h
+++ b/Marlin/enum.h
@@ -42,7 +42,7 @@ enum AxisEnum {
   E_AXIS  = 3,
   X_HEAD  = 4,
   Y_HEAD  = 5,
-  Z_HEAD  = 5
+  Z_HEAD  = 6
 };
 
 #define LOOP_XYZ(VAR)  for (uint8_t VAR=X_AXIS; VAR<=Z_AXIS; VAR++)
diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp
index d786824e19b6e00b1c9e7ae7d63778b7f92893b9..f738d56c4010995d88d1e943ccf2b6f77ae081ba 100644
--- a/Marlin/planner.cpp
+++ b/Marlin/planner.cpp
@@ -782,7 +782,7 @@ void Planner::check_axes_activity() {
    * Having the real displacement of the head, we can calculate the total movement length and apply the desired speed.
    */
   #if ENABLED(COREXY) || ENABLED(COREXZ) || ENABLED(COREYZ)
-    float delta_mm[6];
+    float delta_mm[7];
     #if ENABLED(COREXY)
       delta_mm[X_HEAD] = dx * steps_to_mm[A_AXIS];
       delta_mm[Y_HEAD] = dy * steps_to_mm[B_AXIS];