Anyway, recently I've been trying to actually extract the .MLT files, something I don't think has been done before. I found a set of python scripts meant to do this here:
Unfortunately, these scripts were made in an older version of python, and it seems some of the syntax has changed. Months ago, I updated most of it to work with the current version of Python, but I still couldn't get it to work. Here is the updated code for dsfmake:
Now, there's still at least one problem left in the code. When the code is executed, you get this error:

I've never dabbled in python before this and I haven't been able to fix this. If anyone knows what's wrong, feel free to fix it or say what's wrong. I think the mlt files can almost be extracted, which I find quite exciting.

Also, if anyone else wants to discuss any other aspect of SA2 hacking, feel free to post your findings...

I'm using 3.2.1. I think the original code was written with Python 2 though and I edited some of the code months ago to work with new syntax and such.
Edit: Turns out I'm a fool. The only .afs file contains all of the voices from the cut-scenes. However, I think the MLT files still contain the sound effects used in the game...so it'd be great to extract them.

A little late to the party, but I've been trying to break some ground in SA2B since I can at least hack it (sorry SA2 DC goers). Well, I did this.
And this is a direct swap between Sonic and Super. Had to adjust IDs in his model to make it work, but hey, it worked, haha. I also have a big list of animations I was working on. Turns out the game uses practically the same animation format as SA1/DX. But just swapping some IDs in there does wonders for animation swapping.

A little late to the party, but I've been trying to break some ground in SA2B since I can at least hack it (sorry SA2 DC goers). Well, I did this.
And this is a direct swap between Sonic and Super. Had to adjust IDs in his model to make it work, but hey, it worked, haha. I also have a big list of animations I was working on. Turns out the game uses practically the same animation format as SA1/DX. But just swapping some IDs in there does wonders for animation swapping.

Well you just answered my dreams as an 11 year old. Fucking GameWinners.com and Supercheats.com telling me you'd unlock Super Sonic/Shadow by obtaining 180 Emblems and A ranking every stage. I'd never been so dissapointed in my life. >:

Fuck it, I'm downloading Dolphin and hunting down an SA2B iso simply in the hope you write a how-to or make a release. I'd play the fuck out of it. /11yearold

EDIT: Out of interest, how does this swap affect the cutscenes? Does the head freak out like in SADX?

Well you just answered my dreams as a 11 year old. Fucking GameWinners.com and Supercheats.com telling me you'd unlock Super Sonic/Shadow by obtaining 180 Emblems and A ranking every stage. I'd never been so dissapointed in my life. >:

Fuck it, I'm downloading Dolphin and hunting down an SA2B iso simply in the hope you write a how-to or make a release. I'd play the fuck out of it. /11yearold

EDIT: Out of interest, how does this swap affect the cutscenes? Does the head freak out like in SADX?

Well, I haven't watched a cutscene with it. And I would release this if it weren't so crash prone. Due to Super Sonic lacking pretty much every single model, except for his body, he crashes. A lot. I mean, I should have probably shown a picture of what happens when you jump. With the swap, since Super has his own normal model too for when you run out of rings, that model is now part of the jump ball model. So to get this to fully work with some animation swaps and whatnot, I'd have to port some data between models. You know what? I'll just do a video later to show the crashy crashy the game is. I do think if someone could make some codes to eliminate some of the things that are borked, like items, jump ball model, that after shadow model, and the jumping and homing attack models, he might just work entirely. But until then, it's just a showing off that it's possible. I'll also check on the cutscenes for you. I'm pretty sure they're the same since the game includes the character models in the event files.

Not only is the chunk header treated as a word when our docs say it's two bytes (wouldn't be the first time), it looks like they switched the length and chunk type, and the index base and vertex count parameters. The floats following are the same in both (byteswapped obviously), so aside from one parameter being changed it's basically the same data.

I'm not sure I have enough information to actually do anything about this though.