If would like to change the host-name in Solaris 11, it's quite simple and much simpler nowadays. You can basically do it in only 2 steps.
 
1 - First of all you should check the current properties of the system using svccfg:
 
reny@solaris11_2:~$
svccfg -s system/identity:node listprop config
config                       application        
config/enable_mapping       boolean     true
config/ignore_dhcp_hostname boolean     false
config/nodename             astring     solaris11_2
config/loopback             astring     solaris11_2
 
 
2 - Second you set the new hostname:
 
~$ svccfg -s system/identity:node setprop config/nodename="new_hostname"
~$ svccfg -s system/identity:node setprop config/loopback="new_hostname"
 
3 - Then you should refresh the system properties:
 
reny@solaris11_2:~$ svccfg -s system/identity:node refresh
 
4 - Now you should restart the service using svcadm command:
 
reny@solaris11_2:~$ svcadm restart system/identity:node
 
To verify if the host-name change was successful run the same command from the beginning
 
reny@solaris11_2:~$ svccfg -s system/identity:node listprop config
 
If you have the host-name in your prompt, like mine - solaris11_2 - you should see the change the next time you open your shell.