Blender’s boolean modifier always glitches out with surfaces that are perfectly flush, using snapping. This happens in all cases where there is a flush edge - whether it’s Difference, Intersection or Union.
This is not a problem in 3DS, it’s unique to Blender, and I’ve been working around this for months now, over-extending surfaces to solve the problem, but it’s getting unwieldy now that I’m working with models intended for 3D print - as it’s throwing off my measurements!
First example: below I have a Boolean Union from the larger box to the smaller box. The smaller box is flush with the edge of the larger box. Notice the strange polygons added, visible in wireframe. This doesn’t happen in Max, it just attaches them as expected.
In the inverse example, I have the smaller box internal to the larger box, but the outer edges are flush. Max resolves this correctly and cuts a clean hole. Blender gets confused again and makes thin slithers of glitchy triangles over the hole.
Moving the object out ever so slightly, fixes the problem, but throws off my measurements.
Yes I could give up and model the changes in manually, which I do - and then wonder, why bother having the Boolean modifier? The whole point is to allow flexibility during development so you can make changes without disrupting the mesh.