The beatmaps were drawn in macromedia flash - the source file is within the custom zip.
There are three versions of the animation's script in there.

The BGAnimation.ini for stepmania 3.9/3.9+.
This was a pain to get working, as there is no way to call the current difficulty that returns a
comparable value. But what you CAN do, is take the return value and put it into the StepsMeter()
function to return the number.
So I ended up having to say "if you're playing the 9" rather than "if you're playing hard".
This took FIVE HOURS to figure out.
There are other random nuances in the 3.9 format, such as the inability to concatenate to filenames within the ini -
so I had to make a different layer and conditional for EVERY part of every chart, for both players.
And another problem it took a while to figure out - Player 1 is (1) in 3.9, but (0) in all newer versions of SM.
Why doesn't the ini format support simple math either? And where are the screen size variables?
It's just beyond inconvenience.

The Default.xml for stepmania 3.95/4/OpenITG.
Finally, something I actually know how to fucking use rofl.
Because filenames can be concatenated, I only had to use one set of chart parts per player.
File="@'chart'..GAMESTATE:GetCurrentSteps(PLAYER_1):GetDifficulty()..' 1'"
will load "section one" of the appropriate chart for your difficulty (since they're named like "chart3 1.png")
I also used a lot of numeric soft-coding like "SCREEN_WIDTH" instead of "640", to cater to both widescreen
and 4:3 players. The widescreen fixes carried over to sm5's lua files too.

The Default.lua for stepmania 5 previews 3 and 4.
This was another fun one, but I did get a little stumped with the fact that
GAMESTATE:GetCurrentSteps(PLAYER_1):GetDifficulty()
returns a string like "Difficulty_Medium" instead of a number like "2",
so at the top of the file I used dummy variables "steps" and "steps2" to capture the difficulties
both players are playing on and turn them into numbers, to be concatenated to the filename smart-loaders.
I'm aware I could have used a for loop to write out most of this code, but by this time I had been up
for 10 hours working on this file and didn't think of it, instead opting to directly port the xml file.
(Didn't take too long in notepad++)
Since SM5 themes can't seem to agree on where they put their lifebars, I ended up making a different file
with the top section cut off to be loaded by the lua file alone.

This file will NOT work in sm-ssc before the version sm5 preview 3, since foreground changes weren't at all implemented.