I cannot find the MSI format specification. It says that its an open standard, but I don\'t see any documentation - just bits and pieces of information here and there.
Don't forget MakeMSI which is a free app to create MSI files.