for the alias ls command you set i dont think you can have it work with the '<tab> thingy'. when u press tab like that it is a feature of the shell. it is for auto completion. when it finds only one result it will display that one, when it finds more than one it will display them all as a convenience to you to let you know which one you need to work with, or whatever. so, again, i dont think you can achieve what your saying.. someone correct me if im wrong, though.
for the directory size, the ls command is doing what it is supposed to.. its showing you the size of the file. however, in the case you mentioned, those files are 'directories' and they are handled the same way as any other file with ls. it IS showing you the size of it, but not the size of its contents and their contents (recursively). you would i think either need to write a script, or you can use the 'du' (disk usage) command. see the man page here
edit: i dont have access to *nix right now and i might be wrong here.. if its not du then the command is df, i havent used them in while and forget. it wont kill you if you accidently do either, of course.