In order with unsigned(31 downto 0). 2^MAXin the message you are referring is an error and should read 2^length. The length 31 downto 0is 32.
Think about it, it 31 downto 0can represent numbers from 0 to 2 ^ 32-1, it does not make much sense if any addition of this range is modulo 2 ^ 31, if you can represent large numbers!
, , 2 ^ 32 0 2 ^ 32-1. 2 ^ 32 , , .