Seems like you have some solutions already, but in regards to a common texture directory (this is separate from the duplicate material question ):
I export .gltf (binary) instead of .glb and export the texture directory as a relative path (“../textures” ).
I made a tweak to the loader to allow relative paths during texture loading. Unfortunately, the validation method wasn’t public, so I had to tell Typescript to ignore my “hack”.
More discussion in an old thread here:
IIRC, the final code needed was significantly less complicated than was originally discussed. If you want to pursue this option and need a PG, I can probably throw something together.