The image library is probably the biggest contributing factor.
Modern hard drives can load all the pk3s into memory in 1 or 2 seconds.
When I fed OA PK3s to my own game engine for benchmarking, it showed that:
a). paszlib is *fast*, 40 megabytes per second on an i5. And that's with range checking on! I believe the original zlib would be even faster
b). the vast majority of the loading time went to image library decoding images or resampling them down for mipmaps.
So, how fast is libbpg compared to whatever OA is using for jpegs and pngs?
Imma curious
Maybe best strategy is using uncompressed tgas and letting zlib handle the load ?