Oh well, sorry for the confusion. It looks like you use .ToString() to display the content of msg.From, but this results in an encoded form of the display name - it returns the contents of the header, not its visual representation. However, decoded parts are available through MailAddress object, which makes it quite simple to achieve what you need - just cunstruct the desired visual representation yourself.
This code displays the name and address parts along with ToString() and a custom-formatted form, which looks like what you need: 
        foreach (MailAddress address in mail.From)
        {
            Console.WriteLine("Name: {0}", address.DisplayName);
            Console.WriteLine("Address: {0}", address.Address);
            Console.WriteLine("Both: {0}", address.ToString());
            Console.WriteLine("Custom: {0} <{1}>", address.DisplayName, address.Address);
        }