A few words on *why* people use the inverse transpose when mapping normals: suppose your normal at a point `p1` on the untransformed object is `n` and `p2` is a nearby point on the object. Suppose also that you are applying the affine transformation matrix `M` to your object, so that `M*p1` and `M*p2` are the new locations of `p1` and `p2` on the transformed object. You want to transform the normal using a matrix `N` so that the angle between `n` and `p2 - p1` is preserved: ``` (N*n) . (M*p2-M*p1) = n . (p2 - p1) n^T N^T M (p2 - p1) = n^T (p2-p1) ``` and this equation is true for any choice of `p2` if `N^TM` is the identity, i.e. `N = M^(-T)`.