The way this is mapped, with a separate crossing over each direction of the road, looks correct. Especially because the sidewalks have been mapped separately from the road.
The wiki uses these examples for traffic signals:


https://wiki.openstreetmap.org/wiki/Tag:highway%3Dtraffic_signals
I would not join the 6 separate crossings into 1. Just tag each crossing as highway=crossing and, if they exist, crossing=traffic_signals.

