Hex Grid Generation Sanity Check

Okay, so I got a flat hex grid of arbitrary size generating. I’m currently using InstancedStaticMesh to draw out the field, and each hex will have an invisible blueprint object on top of it for things like collision and keeping information about the underlying tile.

Looking ahead a bit, one of the concerns I have is with being able to have a 3d hex tile have different materials for its sides, bottom, and top. In order to accomplish this, am I going to have to make “fake hexes” instead of using a single mesh? Ie have each tile be visually made up of 8 separate staticmesh faces? This also goes back to being able to remove pieces of hex tiles from the scene that are not visible to the player. For example, if two tiles are adjoining, the faces where they meet need not actually have geometry.

So, hex tile with removable/separately mappable faces. Is there a better way to do this?