Fix a few mapping problems and change @ to ! to specify verse parts.
Also updated mapping code to be a bit more efficient and added lots of review comments.