Would a change to the bone scale function like this fix that? I would have to account for if the scale is of the bone was positive or negative on any of the axes though as well to set them to a -1 instead of 1.

I might be way off on this though… not really sure if it would be the local mat or the scale mat that I would want to reset to 1.

Also I am not proposing this as a change to the engine, but rather a function I will rebuild to serve my use case.

```
public scale(x: number, y: number, z: number, scaleChildren = false, noneCumulative = false): void {
var locMat = this.getLocalMatrix();
// Apply new scaling on top of current local matrix
var scaleMat = Bone._tmpMats[0];
if(noneCumulative){
scaleMat[0]=1
scaleMat[5]=1
scaleMat[10]=1
}
Matrix.ScalingToRef(x, y, z, scaleMat);
scaleMat.multiplyToRef(locMat, locMat);
// Invert scaling matrix and apply the inverse to all children
scaleMat.invert();
for (var child of this.children) {
var cm = child.getLocalMatrix();
cm.multiplyToRef(scaleMat, cm);
cm.multiplyAtIndex(12, x);
cm.multiplyAtIndex(13, y);
cm.multiplyAtIndex(14, z);
child._markAsDirtyAndDecompose();
}
this._markAsDirtyAndDecompose();
if (scaleChildren) {
for (var child of this.children) {
child.scale(x, y, z, scaleChildren);
}
}
}
```