--- a/com/mojang/math/Transformation.java
+++ b/com/mojang/math/Transformation.java
@@ -14,7 +_,7 @@
 import org.joml.Vector3f;
 import org.joml.Vector3fc;
 
-public final class Transformation {
+public final class Transformation implements net.minecraftforge.common.extensions.IForgeTransformation {
    private final Matrix4f f_121078_;
    public static final Codec<Transformation> f_268453_ = RecordCodecBuilder.create((p_269604_) -> {
       return p_269604_.group(ExtraCodecs.f_252432_.fieldOf("translation").forGetter((p_269599_) -> {
@@ -163,6 +_,19 @@
    public int hashCode() {
       return Objects.hash(this.f_121078_);
    }
+
+    private Matrix3f normalTransform = null;
+    public Matrix3f getNormalMatrix() {
+        checkNormalTransform();
+        return normalTransform;
+    }
+    private void checkNormalTransform() {
+        if (normalTransform == null) {
+            normalTransform = new Matrix3f(f_121078_);
+            normalTransform.invert();
+            normalTransform.transpose();
+        }
+    }
 
    public Transformation m_175937_(Transformation p_175938_, float p_175939_) {
       Vector3f vector3f = this.m_252829_();