Like I understood, the MultiMeshInstance3D differs from MultiMeshInstance before Goto 4.x and you are populating via the Properties of it (like TargetMesh, etc.).
In one of my projects I'm placing different multi meshes in 3D space via code, so I can keep any reference/index while positioning (in an array f.e.).
To achive what you want, you have to do this on your own by code.
- get your target mesh
- randomize position for each want mesh instance
- if position is in an area you want (f.e. upper half of the sphere) place your mesh instance
You have to know, how to get the geometrical data of your target mesh and how to place your instances correctly.
I'm sure in Godot is a way to merge the different surfaces, can't say how it works in Blender. Maybe MeshDataTool could be a starting point because it could help to solve both of your problems. For example take a look at "create_from_surface".