Selecting piece of merged geometry in a mesh

I used InstancedMesh to make procedural trees, where each level of branches is a separate InstancedMesh, it allows you to have them picked (and selected, if you like, individually). The performance is pretty good, you can have up to 10k instances running at 60fps on a laptop.

The limitation is that instanced meshes have the same geometry (although they can be scaled, rotated, translated and colorized individually).