That's an pretty interesting approach, thank you!
I just browsed a bit in the Tier2 headers and build the following:
cObject3D* agk_obj; // assign something of course :-)
AGKMatrix4 mat;
mat.MakeWorld(agk_obj->rot(), agk_obj->pos(), agk_obj->scale());
AGKMatrix3 rot;
rot.MakeFromEulerYXZ(0, 0, 0);
AGKVector scale;
scale.Set(1, 1, 1);
AGKVector pos;
pos.Set(globX, globY, globZ);
AGKMatrix4 trans;
trans.MakeWorld(rot, pos, scale);
// no you can multiply whatever you want (vector, matrix3 or matrix4) to get the desired result