The available session types are determined by files in the directory:
/usr/share/xsessions
On my system, this contained:
cinnamon.desktop
gnome.desktop
XBMC.desktop
In ancient times, the default session for a user was stored in a file:
/var/lib/AccountsService/users/<yourUserName>
Mine contained:
[User]
Language=
XSession=gnome
I changed it to read
...
XSession=cinnamon
That didn't work. The next time I logged in, I still has to switch from gnome to cinnamon.
I also tried some alternative spelling, such as "Cinnamon".
Next, I removed the file:
/usr/share/xsessions/gnome.desktop
That still didn't work: The default session was now XBMC!
Not alphabetical: The code must read "Anything but cinnamon"
So I removed the file:
/usr/share/xsessions/XBMC.desktop
That left only the cinnamon.desktop file.
At the next login, there was no session pulldown menu at all.
When I completed the login, I was in a cinnamon session.
Rather an extreme solution, but it works.
There must be some other configuration file involved, but I don't know
where or how it works. It would seem better to me if a users's last session
choice was stored in the file:
/var/lib/AccountService/users/<yourUserName>
But it's not and the contents of that file seem to be ignored by Gnome3.
Perhaps that's a bug?
Perhaps other posters will have more insight...