Я тоже так думаю. В том и проблема.
Добавлено через 2 часа 45 минут
Делаю так:

Код AS3:
public class SomeContainer extends Sprite
{
override public function addChild(param_child:DisplayObject):DisplayObject
{
// По этой вот формуле: plane.transform = Matrix3D.multiply(Matrix3D.inverse(newcontainer.transform), Matrix3D.multiply(oldcontainer.transform, plane.transform));
if (param_child.transform.matrix3D == null) param_child.transform.matrix3D = new Matrix3D();
if (param_child.parent.transform.matrix3D == null) param_child.parent.transform.matrix3D = new Matrix3D();
if (transform.matrix3D == null) transform.matrix3D = new Matrix3D();
var inv_m:Matrix3D = transform.matrix3D.clone();
inv_m.invert();
var child_m:Matrix3D = param_child.transform.matrix3D.clone();
var prevCont_m:Matrix3D = param_child.parent.transform.matrix3D.clone();
prevCont_m.prepend(child_m);
inv_m.prepend(prevCont_m);
super.addChild(param_child);
param_child.transform.matrix3D = inv_m;
...
Не работает - вращение сбивается