Before working on a majority of the mechanical differences between the regular battle and mirror battle, I made sure that the transition between the two works as intended. This meant making sure the player can transition into the mirror dimension and remains there for the rest of the battle, not accidentally triggering any of the code that loads the regular map versions.
The easiest way I found to ensure that the transition into the Mirror Dimension happens without fail every time a new level is loaded was to set a 'mirror active' bool to true when the conductor's health falls below half during the RPG phase, then saving the state of the bool to a variable of the same name in SaveData. This can then be called upon in any blueprint using the Load Save from Slot function. For the visual transition UI switch, I then call upon the Mirror Active bool and use a branch to select the right UI to hide and show (along with the right animation, as the mirror transition uses a different UI). I use the same branch method to select between the mirror and regular map versions when loading and deloading levels.
While this wasn't too difficult to implement, in retrospect I should've spent a bit of extra time making the transition UI code into functions that I can reuse to help speed up implementation and clean up code a fair bit. I may spend some time further down the line cleaning up code with functions to help make it more readable and comprehensible. Using SaveData for more than just basic data persistence continues to be a useful and clean way of ensuring functions work as intended in every level across multiple blueprints. Overall, this stage of beta, while brief, was fairly smooth with little issues apart from my own inability to create clean block / visual code.