'Binary' modifier equivalent within a single mesh?

Please help!

I have built myself a nice model of a robot using, as you might expect, lots of nice cylinders and cubes, many of which intersect. This has left lots of nasty unnecessary internal geometry and faces that I want to get rid of, and lots of unpleasant intersecting faces that I’d like to have a better way of UV unwrapping.

Ideally, what I’d like to do is create a topology mesh of some kind, which neatly wraps all of the visible parts of my model into a single, unbroken surface mesh. This is apparently much harder than I’d expected.

I can’t use the ‘binary’ modifier, because I’ve used multiple meshes in a single object rather than keeping them all nicely separated. I can’t just use the ‘shrinkwrap’ modifier with a really big sphere, because my model has lots of loops in it. I’ve seen the word ‘retopology’ mentioned, but that just seems like remaking the model from scratch, and imprecisely at that.

What am I missing? What is the magic filter or command that can do this for me? Please help!