im not sure about your idea.
trully IMO what you need i belive is TextureArray. the only problem with it is that it require same size and same format textures.
i suggest you look at shader i made based on Riccardo Parallax occlusion mapping
it base on TextureArray that can have much more textures stored.
it used normalmaps,albedomap,parallaxmap. it can be extended to support more textures easly, just need add more params like “uniform float m_Parallax_11;” and more #ifdef SLOT_11 and additional alphamap for more.