--- a/net/minecraft/core/Rotations.java
+++ b/net/minecraft/core/Rotations.java
@@ -26,11 +_,22 @@
             buffer.writeFloat(value.z);
         }
     };
+    // Paper start - add internal method for skipping validation for plugins
+    private static boolean SKIP_VALIDATION = false;
+    public static Rotations createWithoutValidityChecks(float x, float y, float z) {
+        SKIP_VALIDATION = true;
+        Rotations rotations = new Rotations(x, y, z);
+        SKIP_VALIDATION = false;
+        return rotations;
+    }
+    // Paper end  - add internal method for skipping validation for plugins
 
     public Rotations(float x, float y, float z) {
+        if (SKIP_VALIDATION) { // Paper - add internal method for skipping validation for plugins
         x = !Float.isInfinite(x) && !Float.isNaN(x) ? x % 360.0F : 0.0F;
         y = !Float.isInfinite(y) && !Float.isNaN(y) ? y % 360.0F : 0.0F;
         z = !Float.isInfinite(z) && !Float.isNaN(z) ? z % 360.0F : 0.0F;
+        } // Paper - add internal method for skipping validation for plugins
         this.x = x;
         this.y = y;
         this.z = z;
