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);
}