How to remove huge spikes in current
That's called shoot-through. It happens because you are using the same signal to control your both high and low side transistors of each half-bridge. Since the tendency is that it takes longer to turn off than to turn on, there is a point in time where they are both MOSFETs are on creating a short-circuit.
Either use independent control for the MOSFET so you can have a small time delay between turning a MOSFET OFF and a MOSFET in the same half-bridge ON, to give the MOSFET turning off enough time to completely turn off before the other MOSFET starts turning on, or add gate circuitry to make turning on happening more slowly than turning off. A larger series gate resistor will slow down the turn on and turn off time. You can use diodes so that charging uses a different resistor than discharging to independently tune the turn on and turn off times.
Also, you are switching an inductive load which will produce voltage spikes when interrupting a current as the inductance tries to use the energy in the collapsing magnetic field to keep current at the same level via V = I(dL/dt). Since this is an H-bridge configuration, you should have flyback diodes anti-parallel to the MOSFETs to provide the inductive flyback current a path to flow to gracefully decay so a large voltage spike does not need to be produced. Or, you need to place a bidirectional TVS diode in parallel with your inductance which will do something similar (a unidirectional TVS diode, or any unidirectional diode will not work here since your inductance experienced current in both directions).
NOTE: A half-bridge is different than an H-bridge. An H-bridge is formed from two half-bridges.