Pull Request
I finally managed to do this. Using TArrays, MODELDEF entries can now have an unlimited number of models per actor frame, instead of just four. TArrays have been used for this because the number of their elements can be changed dynamically. surfaceSkin was a two-dimensional array. It's now a one-dimensional TArray as well, and due to the neccessary changes in accessing it, a number of additional files besides model.h and models.cpp needed the be changed.
Tested to work with multiple SurfaceSkin properties per model, animations, and animated voxels.
I created a simple pk3 for testing (use with doom2.wad). In MAP01, it contains a sample actor that uses seven models per frame, is animated, and also has multiple SurfaceSkin properties for one of it's models. Right of the actor is clip that is replaced by a voxel, and to the left is a blue, animated voxel torch.