@ cnfhbr
Yes, you are right!

What I have called "Type" and "SubType" for ExtraPOI are not their type and subtype.

I have made some tests after reading your post and it appears that ExtraPOI do have type and subtype, but these type and subtype do not appear in the section "ExtarPOI" of the typ file.
ExtraPOI have another identifier that corresponds to what you see in MPC Viewer, and this is that identifier that appears in the section "ExtraPOI" of a typ file.
So, in TYPViewer I will correct this and call this identifier "Brand ID" instead of "Type" and "Subtype".

The tests I have made , show that if the ExtraPOI of the map is not in the typ file (i.e. not in the POI section AND not in the ExtraPOI section) the ExtraPOI is displayed with the default icon according to its type and subtype, if there is a POI of this type/subtype, the ExtraPOI is displayed with the icon of this POI and if there is an ExtraPOI with its brand ID in the typ file, the ExtraPOI is displayed with the icon of the ExtraPOI of the typ file.

For example, near my home there is a supermarket named "Leclercq" and in CNNTEU it is represented with an ExtraPOI with Type/Subtype 10f/02 and Brand ID 007/1D ( i.e.253 in decimal) and the icon is a big "L".
If in the typ file there is no POI 10f/02 AND no ExtraPOI with Brand ID of 253 , then the Garmin default icon for GROCERY_STORE is displayed.
If the typ file contains a POI 0x10f/02 BUT DOES NOT contain an ExtraPOI with Brand ID of 253 , the icon of this POI is displayed.
If the typ file contains an ExtraPOI with Brand ID of 253, the icon of this ExtraPOI ( i.e. the big "L" ) is displayed, no matter if there is a 10f/02 POI in the typ file.

So Brand ID seems to be like an identifier of a subcategory that has priority on POI.

One question: is it better to note the brand ID with one integer between 0 and 65536 or with to integers, one for the first 5 bits and the second for the 11 next bits ? One of the errors you have encountered deals with a number of 5 bits... so maybe it is worth to separate the Brand ID in two...

For the Special Labels, it seems that I have to rename them "Brand list" in TYPViewer...