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.