The Transport Accident Investigation Commission says there are about 250 level crossings where long vehicles do not have enough room to wait at a stop sign and still clear the railway tracks.
This has emerged from the report on a crash last October when a bus got stuck on the railway lines at Paekakariki, north of Wellington.
Six passengers had to flee the bus when a train approached it at 70km per hour and hit the rear of the vehicle. No one was hurt but the bus was badly damaged.
The commission found the profile of the level crossing was too steep for low-floor buses that can easily get stuck.
It also found there was not enough room for the bus to clear the tracks and still stop before reaching a stop sign at the edge of an intersection with a state highway.