First: I managed to pull off the glitch in the last booster; but it is slower than doing it on the previous booster since it requires going to the left enough so that the spindashes push the camera far enough to unload the booster.
As for spindashing while under the effects of the anti-gravity/slope glitch:
For starters, the anti-gravity/slope glitch works like this: Sonic (or Tails or Knuckles) keeps the 'standing on object' flag set because of a coding error on an object. Moreover, the same coding error will usually leave the "interact" byte (the last object Sonic stood on) intact during the glitch either. This causes all the effects we are used to.
The 'standing on object' flag is bit 3 of byte $FFB022 (for Sonic in S1 or S2); if putting a memory watch on this byte as a hex value, the flag is set in the following cases: $XF, $FE, $XD, $XC, $XB, $XA, $X9, $X8 (with X = any hex digit).
The "interact" byte is byte at $FFB03D (for Sonic in S2), and it is an index into the object table -- multiply it by $40, add $FFB000, and you have the RAM address of the object in question.
In order to start charging a spindash, Sonic needs to (a) not already be spindashing (duh) and (b) be in the ducking animation.
Now I list what conditions need to be true to be able to get into the ducking animation. I look only at the conditions relevant to the case at hand -- the 'standing on object' flag being set.
- If bit 7 of the status byte* of the "interact" object is set, Sonic can duck; otherwise:
- if Sonic is at the edge of the "interact" object**, he loses balance and can't duck;
- otherwise, Sonic can duck.
* The status byte is the byte at offset $22 from the start of the object's RAM.
** Remember that the "interact" object byte
is not cleared (and in the cases when it
is cleared, Sonic's object data will be used instead). This means that
any object that happens to be placed in the same location indicated by the "interact" object will be used to determine whether or not Sonic can duck.
When the object is deleted, its entire SST is set to zero; this is why Sonic displays the "off-balance" animation -- the object is now effectively at position (0,0) and has 0 width and 0 height, meaning Sonic is considered to be at its edge (the check to see if Sonic is past its edge is done from the object code, so Sonic's code doesn't second guess it).
So the summary: you want to manipulate the object placement so that Sonic thinks he is standing on this object; you will then be able to spindash.