Mirroring a game object with children without messing up box colliders

I have a fairly complex object made out of cubes and I want to create a mirrored copy of it. I am attempting to do this by setting the scale to -1 on the x of the transform for the mirrored version of the object. Unfortunately, due to the nature of the object (many children rotated and positioned around in different ways) the box colliders get messed up. They are sitting at the wrong angles after flipping on the x. Is there a way in script to correctly mirror a game object without messing up the colliders?

colliders ok:

[33997-colliders+ok.png|33997]

colliders goofed after mirror:

[33998-colliders+wrong.png|33998]

this may help

In case anyone runs into this, here’s an answer, though I really hope it isn’t the answer. I ran with my interpretation of what mwbranna said “rotating the entire system”, though in actuality it ended up being “rotate the negative y angle of every child object and position each object at the negative x position, having put all the objects into a separate list before doing any of this because the whole child-parent relationship will mess things up otherwise”. That’s the short version of the answer, anyone looking for more can check out a video demonstration of the problem and my solution here: - YouTube

you create an empty object, make sure the scale and rotations are set to default, then put your complex object as children of the empty object, if there are issues with colliders not matching, its because the empty object’s scale and rotation is affecting the child objects. to know what i mean by testing it out, create a cube, create an empty object, change the scale of the empty object, then make the cube a child, you will see that changing the scale of the parent affects the child.

to create a mirrored copy, do what you did with the transform, but with the empty object only.