Are you sure that is the way to do scaling? I know that first 3x3 is for rotation x,y,z in 3 directions and 4th is for position, no idea what lies there under the 3 rows though. Maybe scaling is about multiplying the rotation vectors? Or maybe directx has some easier command to do that...