What we're trying to do:
We have an imported spine rig that has an 8 page atlas. This is causing a huge performance hit. At runtime, we want to grab the textures used from the various pages (the used textures can fit to 1 page), atlas them into a single texture, and use this runtime texture so we prevent material switching and improve our draw calls.

I have the runtime texture generating just fine. I'm having issues with the atlas regions. They just aren't working at all. Every slot that has a texture is just using the entire runtime texture, and not the sprite it should. We have reassigned slot regions to match the new position within the new atlas as well. Not sure if we're missing some sort of final call to make it work.

Related Discussions
...

To address the issue of optimizing your Spine rig by reducing the number of atlas pages at runtime, you need to ensure that the atlas regions are correctly updated to reflect the new positions within the single runtime texture. The process involves creating a new atlas with the desired regions and updating the renderer objects for each attachment to reference the new atlas regions. This is similar to the process described in the context about swapping texture atlases at runtime, where you iterate over each attachment and update its renderer object to point to the new atlas region.

If the slots are using the entire runtime texture instead of the specific sprite, it suggests that the UV coordinates for the attachments are not being updated correctly. Ensure that the UVs are recalculated based on the new atlas region positions. This involves setting the correct UVs for each attachment to match the new atlas layout. If you are using a custom runtime solution, make sure that the UVs are being set correctly after the atlas is generated.

Additionally, check if there are any specific calls or updates required by your rendering engine to refresh or apply the changes made to the atlas and attachments. This might involve reinitializing or updating the skeleton or animation state to ensure the changes are recognized.

The atlas may have rotated and/or whitespace stripped regions. That can make it a little tricky. I think spine-unity has a built-in way to do it. Here's the docs and there should be an example in the runtime:
http://esotericsoftware.com/spine-unity-main-components#Runtime-Repacking

Another option is to distribute (or download) individual files and then pack them into an atlas at runtime.

@RogueDC Please check out the example scenes Spine Examples/Other Examples/Mix and Match, Mix and Match Equip and Mix and Match Skins. Also check out the video on examples here.

Thanks so much for the replies. This helped.