Z up to Yup using Maya API MMatrix C++

Thanks for taking the time to scrutinize my work, I appreciate it.
I’m not applying this to meshes (not yet anyhow), skeleton joints are my test case.


With the ‘brute force’ component swapping, the game joint data are definitely importing to the same positions and rotations as their Maya source joints (well, the source rotations are actually stored in joint orient values)


The image below shows the logic I followed building my matrix, based on a thread from gamedev.net I believe, asking What basis do I need to multiply each XYZ component by to orient it correctly in the new coordinate system?

engine_to_maya

This gives me a 3x3 column vector matrix, and I am not sure I correctly converted it to a 4X4 MMatrix.
In the API docs MMatrix is just an abstract [4][4] array with no defined ‘roles’ for columns or rows or cells.


If I want to combine SRT vectors/quats into a single MMatrix, what is the process for that?
I have read that an open GL 4x4 matrix is organized by column vectors thusly:

R R R T
R R R T
R R R T
0 0 0 1

Is a MMatrix representing a transform similarly arranged?
Do I take MQuatertion.asMatrix(), and set the 4th column to the S*T vector?