Very nice idea, but could be improved significantly. The high friction pistons take up a lot of power, and the engine could be made stronger by reducing the length of the spring further on the second stroke. That will give each piston a push AND pull per cycle, effectively doubling the power.
At the moment you have 4 pistons hitting at once. You can provide more steady, continual power by staggering the pistons so each will reach the top/bottom of the cylinder at seperate times. This will help prevent engine stalling under sudden loads.
The spread out of the cylinders wastes power and CPU. If you could have one cylinder with all 4 pistons powering a circle, you would reduce potential lag and increase power. (stretching hinges tends to waste power)
I eventually want to make it reload completely at the press of a button by sinking into a base, shoving new slugs into the barrel-clip and then rising back up to it's original height.