OK so here's my idea since I'm making Necro:
We use sparkno for front foot pos and guard.sparkno for right foot pos. They're both Int32's, so we should be able to split the Pos X and Pos Y into two bitwise fields, each of 16 bits.
So to calculate the positions, you'd do Pos X | (Pos Y << 16). In other words, Pos Y is multiplied by 65536.
So for a pos of -16, 1, you'd do:
(65535&-16) | (65536 * 1) = 65520 | 65536 = 131056.
And to retrieve the position for front foot, you'd do:
[State x, TargetBind]
type = TargetBind
trigger1 = AnimElem = 6
pos = ceil(((Target,Const(Data.SparkNo)&65535) | ifElse(Target,Const(Data.SparkNo)&32768,-65536,0)) * Target,Const(Size.XScale)), ceil((Target,Const(Data.SparkNo)/65536) * target,Const(Size.YScale)), Foot