Use dynamically allocated particle chains for particle management instead of statically allocated pointer arrays. This way we're not bound to MA_GL_TEXTURES and we don't spin on a mostly empty array each frame.