What I did for a game was write a custom loader (in my case for meshes, but the principle works with textures as well).
basicly it comes down to this:
1. filename already in library? copy the entity.
2. not in library? load the entity.
When I loaded a mesh using this custom function, it added
the filename (and a reference to the object) in a type
if it was not not in this list already.
This way multiple objects where not loaded twice, only
referenced more.
Compare it with Macromedia Flash object instances and objects in the library.
basicly it comes down to this:
1. filename already in library? copy the entity.
2. not in library? load the entity.
When I loaded a mesh using this custom function, it added
the filename (and a reference to the object) in a type
if it was not not in this list already.
This way multiple objects where not loaded twice, only
referenced more.
Compare it with Macromedia Flash object instances and objects in the library.