diff --git a/Marlin/vector_3.cpp b/Marlin/vector_3.cpp
index 82b6925b8d..5f1c294ed5 100644
--- a/Marlin/vector_3.cpp
+++ b/Marlin/vector_3.cpp
@@ -121,7 +121,7 @@ matrix_3x3 matrix_3x3::create_look_at(vector_3 target)
 {
     vector_3 z_row = target.get_normal();
     vector_3 x_row = vector_3(1, 0, -target.x/target.z).get_normal();
-    vector_3 y_row = vector_3(0, 1, -target.y/target.z).get_normal();
+    vector_3 y_row = vector_3::cross(z_row, x_row).get_normal();
 
    // x_row.debug("x_row");
    // y_row.debug("y_row");