There multiple ways to achieve this. Since I assume you want basically only a hull when you are done and not the vertices that are intersecting you could use Geometry scripting to iterate over all the meshes the you deemed intersecting and emerge them one by one with the with "Apply Mesh Boolean" to get the union between them. It is quite slow and will likely hard to keep your uvs but I assume you do not need that anyway.
There are also functions for simplification and cleanup.
Quick search shows there is even an Epic Games tutorial for this, even though it is blueprint, it directly translates to C++.