I use something similar to this.
**Content Directory**
- Environments
-- Dungeon/Level
--- Tiles
---- Skins
--- Clutter
---- Skins
--- Objects
---- Source
----- Skins
---- Doors
---- Lights
---- Destructibles
--- Effects
--- SFX
The “Skins” folders are where I’ll dump any textures that are mesh-specific along with their materials. I do that mostly because once they’re setup and applied to the mesh I never really care about them again unless I notice something wrong with them, and then it’s still easy enough to track it down by just keeping the name straight on everything.
Basically I like to group things based around where they’re used. If an object is only used in one tileset, then it’ll be grouped in that environments Objects folder rather than the global Objects folder.
Again I think this is personal preference . As far as I know, and someone correct me if I am wrong, the directory structure does not have any performance implications, just workflow ones. You can really just do whatever is easiest to keep track of. This is how I like to work, but I’m sure that structure will be absolutely maddening to some other people.