There seems to be much repetitious text using this "template" in all the PUB* Reason Code sections.
The values for the one byte unsigned Publish Reason Code field are listed in Table 3 6 – PUBREC . If the Remaining Length is 2, then the Publish Reason Code has the value 0x00 (Success).
and then after the table of reason codes
The Client or Server sending the PUBREC MUST use one of the PUBREC Reason Codes in Table 3 6 – PUBREC Reason Codes [MQTT-3.5.2-1]. The Reason Code 0x00 (Success) and no Properties may be sent by using a Remaining Length of 2.
Why not delete 2166 and replace with 2171?