This should be a tiny addition which would help in organizing cluttered skin folders. Everything will still be based on filenames, so there's no restriction about where to put certain elements.
Example scenario, if you didn't get what I mean. Consider this folder tree:
> Skin Folder Root
---> Folder A
------> hitcircleoverlay.png
------> lighting.png
---> Folder B
------> approachcircle.png
------> lighting.png
> approachcircle.png
> hitcircle.png
The elements that will be used will then be: approachcircle.png, hitcircle.png, hitcircleoverlay.png, lighting.png
All elements on the root will be prioritized. Then osu! runs through all subfolders alphabetically, replacing previous duplicate sprites with the newly detected ones (that's why the lighting.png from Folder B was used). Skin.ini should be strictly inside the root directly. There could also be a toggle for reading elements inside subfolders using skin.ini, which should be off by default.
Example scenario, if you didn't get what I mean. Consider this folder tree:
> Skin Folder Root
---> Folder A
------> hitcircleoverlay.png
------> lighting.png
---> Folder B
------> approachcircle.png
------> lighting.png
> approachcircle.png
> hitcircle.png
The elements that will be used will then be: approachcircle.png, hitcircle.png, hitcircleoverlay.png, lighting.png
All elements on the root will be prioritized. Then osu! runs through all subfolders alphabetically, replacing previous duplicate sprites with the newly detected ones (that's why the lighting.png from Folder B was used). Skin.ini should be strictly inside the root directly. There could also be a toggle for reading elements inside subfolders using skin.ini, which should be off by default.