Is there a way to mirror an object (along an axis, presumably) without setting one of the scale values to negative? This creates problems with adding Boolean modifiers, and it probably affects other things as well. Is there a way to fix this or do it differently?
You can use a mirror modifier, which can either use the object origin, or another object. Then apply the modifier. If you want to mirror, you can use scale, then apply scale, go into edit and CTRL+N to reset normals and you should be ok using booleans then.