Most of us want crossups to work correctly. As such, it'd be nice to have variable height boxes. Unfortunately, MUGEN has a fixed height and uses the bottom of the CLSN2 as the push when jumping. Now, most of us who want to do something about this know about this snippet of Phantom.of.the.Server's code:
[State -3, Variable Height]
type=playerpush
triggerall= statetype=A && movetype!=H && numenemy
triggerall= p2bodydist x = [-(enemynear,const(size.ground.back) + enemynear,const(size.ground.front)), 0]
trigger1= p2statetype=S
trigger1= p2dist y >= (enemynear,const(size.height) - 22)
trigger2= p2statetype=C
trigger2= p2dist y >= (enemynear,const(size.height) - 48)
trigger3= p2statetype=L && p2stateno!=5120
trigger3= p2dist y >= 11
value=0
ignorehitpause=1
... however, after some checking, this is incorrect. Not only are these numbers pulled out of nowhere since CPS2 hitboxes weren't a thing back then, it doesn't even correctly check for lower bounds of any sort of pushbox!
This is the correct way to check for the pushboxes overlapping when the player is jumping:
[State -2, Variable Height]
type = PlayerPush
triggerall = StateType = A && NumEnemy
triggerall = P2Dist Y - Vel Y >= (EnemyNear(0), Const(Size.Height) - [pushbox_bottom])
trigger1 = StateNo = [40,50]
trigger2 = StateNo = [600,650]
triggerx = StateNo = [other air states...]
value = 0
Note the - Vel Y portion. This is basically seeing into the future if the player's position will put them into a situation where they could be pushed. As you can see, this is pretty much plug & play with the bottom of the air pushbox. Of course, you can have multiple triggers for multiple pushboxes.
Now unfortunately, there's no reliable way to check the height for any statetype other than standing, so we have to approximate something for crouch and liedown:
[State -2, Variable Height]
type = PlayerPush
triggerall = StateType = A && NumEnemy
triggerall = P2Dist Y - Vel Y >= (EnemyNear(0), Const(Size.Height) - 52)
triggerall = (StateNo = [40,50]) || (StateNo = [600,650]) || (StateNo = [other air states...] ...)
trigger1 = P2StateType = S
trigger1 = P2Dist Y - Vel Y >= (EnemyNear(0), Const(Size.Height) - [pushbox_bottom])
trigger2 = P2StateType = C
trigger2 = P2Dist Y - Vel Y >= (floor(EnemyNear(0), Const(Size.Height)*0.825) - [pushbox_bottom]) ; 0.825 is chosen because it is a nice float (bitwise) and comes from Sagat's standing pushbox height to his crouching pushbox height.
trigger3 = P2StateType = C
trigger3 = P2Dist Y - Vel Y >= (12 - [pushbox_bottom]) ; This isn't really necessary since the chance of it triggering is low, but I pulled 12 from Sagat's CvS2 liedown hurt box height
value = 0
... but this definitely is flawless for at least standing, assuming the enemy has a proper height.