not all are XM, some are s3m (ScreamTracker 3) ;-)
jq '.[]["songs"][].file | match("\\.([^.]+)$") | .captures[0].string' songs.json -r | sort | uniq -c | sort -nr
3169 xm
1011 mod
226 it
86 s3m
4 nsf
3 rad
2 amd
2 S3M
1 mtm