Algorithm description clarification.
First of all, I am very impressed by the simplicity and power of the algorithm and the fact that it is so well documented here: https://masterpassword.app/masterpassword-algorithm.pdf
The ultimate goal of the pdf I hope is that it will have enough information for someone else to implement the algorithm without access to your code running program. The description is actually very close to that goal with the following exceptions.
Seed format
The documentation seem to suggest that the format is something like: com.lyndir.masterpassword.4.name However, investigation of the code shows that there are no '.' between the parts and that the len(name) is cast to the four bytes forming a uint32. This should be stated in the document somehow.
Template class order
The algorithm is dependent on the ordering of template classes. It is not evidently clear that the ordering in the table is something like this:
1 4
2 5
3
instead of:
1 2
3 4
5
Numeric character set missing 0
Union X incosistent case
X in character set table and x in templates table.
Summary
If these minor changes are made I would have been able to implement the algorithm without looking at the original code or by trial and error.