Before there was TSReader there was transport stream disecting of PID 16(0x0010) bit by bit. The only thing in my move/added/removed listing which does not come from the NIT is the name. The name comes from the SDT. My listing is generated without the use of TSReader in any way and it is automatic.
I do not need a 942 and will NOT bet on this point.
There are currently 2629 channel SIDs in the NIT and those channels match the 2629 channels in the SDT. All is well in the system.
Perhaps, one day I will generate a complete dump of the NIT with descriptive terms. I have not done that in over 2 years. It likely would take more than 2 megabytes to list it now.
For now check Table 12 in section 6.1 and find where Descriptor 0x41 can be used.