This brings me back to wondering if `MatrixRotation2D` shouldn't be split into two separate classes.  I mean, when it's used with the `angle` parameter then it's just the angle we're concerned with (as an external user) and not the rotation matrix.  Meanwhile if using the `matrix` parameter it's not just limited to rotations--it can take any arbitrary linear transformation.  So calling it `MatrixRotation` is a bit of a misnomer IMO.

As this additional option was only added to support the oddity in this special case, I wonder if maybe the special case itself should be reconsidered...