So it turns out OpenGL performs sign extension on any signed values
Sprites working. Sprites blending. Attribute tables working (tm)