The motive for writing this spec was the total lack of public documentation of the formats involved in CHM. There would of course be the specs Microsoft released to the W3C in an effort to make CHM a standard, but these were never made public AFAIK and CHM was rejected as a standard.
It was also hoped that the knowledge gained could be used to create CHM compilers for other platforms such as Linux, BSD and MacOS, so users of those platforms would not have to use Windows to create Windows documentation when writing programs and their documentation for Windows. Also native viewers could be created for other platforms, so people don't have to own a PC and non-free software to view CHM files.