It is possible to generate a contract principal using
(principal-construct? 0x15 0x5fe781ad4656928d3f52419118cdd229d0e75566 "u7E0cd1")
However, decomposing the generated principal into its components is not possible.
(principal-destruct? 'SN1FYF0DD8SB9539ZA90S266DT8MX1STNCSV9F6Z0.u7E0cd1)
The issue occurs when the contract principal name starts with a u<number>. It seems that the name is being parsed as an uint.