KingCobra was over the other day and showed us a sample of his short stroked piston. In his current high-ROF setup, he's using a M160 to generate 380-390fps at the muzzle. There's a lot of teeth missing on his pistons...

.
Carefully assessing if you need to shave/remove/do-nothing to the second tooth is never a bad thing whenever you change gears/piston/piston-head/cylinder-head parts.
High ROF is neat to fool around with...but most of the decent games around here don't need it. 25+ RPS at just under 400fps would hurt like crazy...I'd rather get a 203 at close range than to take a long burst from one of those. KingCobra does it for fun...not for gaming. It also seems like he's also over at Airsoftparts.ca every other day getting replacement parts...so factor that in
I've not been overly careful to perfectly mate the angle of engagement between the tooth surfaces...but it does have merit, especially if it's quite a bit off. I've only adjusted it occasionally.
Plastic sheet (like acetate sheet) make good thin shims, metal sheet make good thicker stock, and the worse one I encountered needed a washer (the setup was just slightly less than 1mm too short).