I still don't understand the intent of not using DirectX's left handed coordinate system. I thought it made sence at first, since OpenGL uses a right handed coordinate system.It would open up for easier porting of OpenGL code and interop integration with OpenGL libraries. Now I would prefer to have things the same way as DirectX so that I can easily use libraries and code from DirectX, but that's me. I can still say that all is good and a right handed system is just fine.

But then I notice that matrices in XNA use row major representation, just like DirectX and not like OpenGL's column major matrices. Now it is only a matter of the order you multiply your matrices in and it really doesn't matter which one you use as long as you know which is which. Now if one were to use a library designed for OpenGL then one assumes column-major matrices and would have transpose them when wrapping them to XNA even though naturally one would assume they would be the same since XNA flipped coordinate system for this reason alone.

The above will work, but what is the point XNA isn't like DirectX and it is not like OpenGL. It is not even the most efficient (column major matrices generate less instructions when compiling HLSL shaders).

Why not stick with left handed coordinate system and row major matrices like in DirectX or go all in on OpenGL and do right handed coordinate systems and column major matrices. As it is now it is stuck in the middle for no reason (only I can think of is that row-major matrices are somewhat easier in that pre-multiplies are to the left).

Or am I missing something...