CAT is an interesting beast as it flies in the face of what Max would normally do in a hierarchy. I don’t have it installed any more so I can’t do any tests on it so I can’t sort out what method would work.
What you might need to do is only set transform values and not rotations or positions. Since you still need to set just a pos or rot value you will need to create the matrix from parts of itself and the one that you want to align to.
The code below aligns just the rotation part of the matrix to the box. Usually when performing matrix multiplications like this you want to start with the rotation matrix and multiply it by the position matrix. This will return a new matrix from the two parts.
b=Box pos:[-20,0,0]
b.transform=(matrix3 [0.904582,-0.426096,0.0132061] [0.35901,0.744726,-0.562579] [0.229877,0.51364,0.826638] [-20,0,0])
s=sphere segments:4 pos:[20,0,0]
--Rotate the spheres matrix around it's own position.
s.transform=(b.transform.rotationPart as matrix3*transMatrix s.transform.pos)