diff --git a/Marlin/G26_Mesh_Validation_Tool.cpp b/Marlin/G26_Mesh_Validation_Tool.cpp
index 0924d7d8b3552434197d91cb843df29d940dea5f..3d93baa91fedeb4d8ae50da3eaefc094e7ac61a5 100644
--- a/Marlin/G26_Mesh_Validation_Tool.cpp
+++ b/Marlin/G26_Mesh_Validation_Tool.cpp
@@ -92,6 +92,7 @@
    *        un-retraction is at 1.2mm   These numbers will be scaled by the specified amount
    *
    *   N #  Nozzle    Used to control the size of nozzle diameter.  If not specified, a .4mm nozzle is assumed.
+   *        'n' can be used instead if your host program does not appreciate you using 'N'.
    *
    *   O #  Ooooze    How much your nozzle will Ooooze filament while getting in position to print.  This
    *        is over kill, but using this parameter will let you get the very first 'cicle' perfect
@@ -674,7 +675,7 @@
       }
     }
 
-    if (code_seen('N')) {
+    if (code_seen('N') || code_seen('n')) {
       nozzle = code_value_float();
       if (!WITHIN(nozzle, 0.1, 1.0)) {
         SERIAL_PROTOCOLLNPGM("?Specified nozzle size not plausible.");
diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp
index 43639d99a354e7b37c7ebc152a6976fcd573caf4..90bcacc408468d816da14d9b0675ef18e8d09a8d 100644
--- a/Marlin/Marlin_main.cpp
+++ b/Marlin/Marlin_main.cpp
@@ -3741,6 +3741,9 @@ inline void gcode_G28() {
 
   // Disable the leveling matrix before homing
   #if HAS_LEVELING
+    #if ENABLED(AUTO_BED_LEVELING_UBL)
+      const bool bed_leveling_state_at_entry = ubl.state.active;
+    #endif
     set_bed_leveling_enabled(false);
   #endif
 
@@ -3882,6 +3885,9 @@ inline void gcode_G28() {
     // move to a height where we can use the full xy-area
     do_blocking_move_to_z(delta_clip_start_height);
   #endif
+  #if ENABLED(AUTO_BED_LEVELING_UBL)
+    set_bed_leveling_enabled(bed_leveling_state_at_entry);
+  #endif
 
   clean_up_after_endstop_or_probe_move();
 
diff --git a/Marlin/least_squares_fit.cpp b/Marlin/least_squares_fit.cpp
index 271aae11ffd89dc1127717783bcacb0cdb0e22da..f7b8163e880e7e3f8a36abde7bfb3b837cb807f8 100644
--- a/Marlin/least_squares_fit.cpp
+++ b/Marlin/least_squares_fit.cpp
@@ -52,9 +52,9 @@ void incremental_LSF(struct linear_fit_data *lsf, float x, float y, float z) {
   lsf->x2bar += sq(x);
   lsf->y2bar += sq(y);
   lsf->z2bar += sq(z);
-  lsf->xybar += sq(x);
-  lsf->xzbar += sq(x);
-  lsf->yzbar += sq(y);
+  lsf->xybar += x*y;
+  lsf->xzbar += x*z;
+  lsf->yzbar += y*z;
   lsf->max_absx = max(fabs(x), lsf->max_absx);
   lsf->max_absy = max(fabs(y), lsf->max_absy);
   lsf->n++;