It is possible to create a table within a non-UInt hash column (i.e. MD5) and insert data, although at query time it complains:
ENGINE = MergeTree(normdate,MD5(id), (created_at, id,MD5(id)),8192);
...
Code: 59. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Invalid sampling column type in storage parameters: FixedString(16). Must be unsigned integer type..
This probably will be better to check at creation time.