How to structure texture loading?

I know the basics of texture loading and all, but how should I structure it? I’ve been looking at slick2Ds way and it seems kinda… specific. I don’t really want 20 different enum types just for basic interpolation specification. I was also thinking of how I would structure sprite sheets, which would be a pain to implement with the current ‘mesh’ system (variable shapes and all). Is there any real good way to structure a texture loading system? Also, how would I go about storing square texture-uvs for ‘meshes’ to manipulate?

EDIT: By “square texture-uvs”, I mean when I use sprite sheets and want a mesh to transform its texture-uvs to match the correct ‘sub-texture’. But I can’t think of a way to to that.