diff --git a/Marlin/src/feature/probe_temp_compensation.h b/Marlin/src/feature/probe_temp_compensation.h
index c9ab93e4a99a94ada4c0a816901de2a39a6e58fd..2ed10eeb990a20cf3bc0f55e4b9b6cdb303b50c0 100644
--- a/Marlin/src/feature/probe_temp_compensation.h
+++ b/Marlin/src/feature/probe_temp_compensation.h
@@ -57,16 +57,16 @@ class ProbeTempComp {
     static const temp_calib_t cali_info[TSI_COUNT];
 
     // Where to park nozzle to wait for probe cooldown
-    static constexpr xyz_pos_t park_point = xyz_pos_t({ PTC_PARK_POS_X, PTC_PARK_POS_Y, PTC_PARK_POS_Z });
+    static constexpr float park_point_x = PTC_PARK_POS_X,
+                           park_point_y = PTC_PARK_POS_Y,
+                           park_point_z = PTC_PARK_POS_Z,
+                           // XY coordinates of nozzle for probing the bed
+                           measure_point_x     = PTC_PROBE_POS_X,   // Coordinates to probe
+                           measure_point_y     = PTC_PROBE_POS_Y;
+                           //measure_point_x     = 12.0f,           // Coordinates to probe on MK52 magnetic heatbed
+                           //measure_point_y     =  7.3f;
 
     static constexpr int  max_bed_temp         = PTC_MAX_BED_TEMP,  // Max temperature to avoid heating errors
-
-                          // XY coordinates of nozzle for probing the bed
-                          measure_point_x      = PTC_PROBE_POS_X,   // X-coordinate to probe
-                          measure_point_y      = PTC_PROBE_POS_Y,   // Y-coordinate to probe
-                          //measure_point_x    = 12.0f,             // X-coordinate to probe on MK52 magnetic heatbed
-                          //measure_point_y    =  7.3f,             // Y-coordinate to probe on MK52 magnetic heatbed
-
                           probe_calib_bed_temp = max_bed_temp,      // Bed temperature while calibrating probe
                           bed_calib_probe_temp = 30;                // Probe temperature while calibrating bed
 
diff --git a/Marlin/src/gcode/calibrate/G76_M871.cpp b/Marlin/src/gcode/calibrate/G76_M871.cpp
index 8cd9c8a0cf47a5ddb08c283e353676cc8f7891c6..029e58bdd47817c38984a88fa790c2ec7b3c5c0b 100644
--- a/Marlin/src/gcode/calibrate/G76_M871.cpp
+++ b/Marlin/src/gcode/calibrate/G76_M871.cpp
@@ -105,8 +105,8 @@ void GcodeSuite::G76() {
 
   if (do_bed_cal || do_probe_cal) {
     // Ensure park position is reachable
-    if (!position_is_reachable(ProbeTempComp::park_point.x, ProbeTempComp::park_point.y)
-      || !(WITHIN(ProbeTempComp::park_point.z, Z_MIN_POS - 0.001f, Z_MAX_POS + 0.001f))
+    if (!position_is_reachable(temp_comp.park_point_x, temp_comp.park_point_y)
+      || !(WITHIN(temp_comp.park_point_z, Z_MIN_POS - 0.001f, Z_MAX_POS + 0.001f))
     ) {
       SERIAL_ECHOLNPGM("!Park position unreachable - aborting.");
       return;
@@ -161,7 +161,7 @@ void GcodeSuite::G76() {
       SERIAL_ECHOLNPAIR("Target Bed: ", target_bed, "; Probe: ", target_probe);
 
       // Park nozzle
-      do_blocking_move_to(ProbeTempComp::park_point.x, ProbeTempComp::park_point.y, ProbeTempComp::park_point.z);
+      do_blocking_move_to(temp_comp.park_point_x, temp_comp.park_point_y, temp_comp.park_point_z);
 
       // Wait for heatbed to reach target temp and probe to cool below target temp
       SERIAL_ECHOLNPGM("Waiting for bed and probe to reach target temp.");
@@ -186,9 +186,9 @@ void GcodeSuite::G76() {
 
       if (timeout) break;
 
-      // Move probe to probing point and wait for probe to reach target temp
+      // Move the nozzle to the probing point and wait for the probe to reach target temp
       destination.set(temp_comp.measure_point_x, temp_comp.measure_point_y, 0.5);
-      do_blocking_move_to(destination.x, destination.y, destination.z);
+      do_blocking_move_to(destination);
       SERIAL_ECHOLNPGM("Waiting for probe heating.");
       while (thermalManager.degProbe() < target_probe) {
         idle(
@@ -207,7 +207,7 @@ void GcodeSuite::G76() {
       destination.z = 5.0;
       do_blocking_move_to_z(destination.z);
 
-      // Do a single probe
+      // Do a single probe at the current position
       remember_feedrate_scaling_off();
       const float measured_z = probe.probe_at_point(
         destination.x + probe.offset_xy.x,
@@ -252,7 +252,7 @@ void GcodeSuite::G76() {
   if (do_probe_cal) {
 
     // Park nozzle
-    do_blocking_move_to(ProbeTempComp::park_point.x, ProbeTempComp::park_point.y, ProbeTempComp::park_point.z);
+    do_blocking_move_to(temp_comp.park_point_x, temp_comp.park_point_y, temp_comp.park_point_z);
 
     // Initialize temperatures
     uint16_t target_bed = temp_comp.probe_calib_bed_temp,