i’d recommend using a visualization mode to make sure our assumptions about batching and draw-calls are correct. though i would assume you’ve done that already.
are you targeting mobile or vr, so that lightmaps and performance is so important?
the only issue with autoinstancing (which afaik you don’t really need to do much to use it) is that it works for same meshes only.
but the thing is, if you can reduce DC per instance, as opposed per piece, you might still consider that as a benefit. maybe that’s an ok enough boost.
otherwise you could try my idea above, but, merge ONLY the pieces that share a material. that way you need less padding. since different materials will issue a new DC anyway.
no prob, i hope it helps. sorry i can’t give you a better answer.
good luck.