From my understanding the size displayed on the box is a selling point. Most hard driver manufactures define one gigabyte as 1 billion bytes, where as every computer geek in the world knows that 1 gigabyte is 1024 megabytes. If one mega byte is 1024 kilobytes, and one kilobyte is 1024 bytes the math would work out as follows
1 KB = 1024 Bytes
1 MB = 1024 KBytes
1GB = 1024 MBytes
So in 1 GB there are actually 1,073,741,824 Bytes
If the manufactures say 1 GB = 1,000,000,000 Bytes you can see that there is a difference (or loss) of 73,741,824 Bytes or 7,2013.5 KBytes or 70.33 MBytes.
So for every GByte the manufacture SAYS you get you need to multiply that number by
70.33
So for a 120GByte Hard drive
120 x 70.33 = 8439.6 MBytes or 8.24 GBytes
So on a 120 GByte Hard drive you would actually get
120 - 8.24 = 111.76GBytes
Lets to the same for you 512 MByte Card
Lets assume the manufacture defines 1 MByte as 1 million (1,000,000) Bytes
And we all know 1 MByte is 1,048,576 Bytes
1,048,576 - 1,000,000 = 48,576 Bytes or 47.44 KBytes
Now multiply the size of your card by your loss number
512 x 47.44 = 24,289 KBytes or 23.71 MBytes
So on a 512 MB card you should get
512 - 23.71 = 488.29 MBytes
You say it has 463 MBytes free so that is a difference of
488 - 463 = 25MBytes
Also you have to take in to account the FileSystem the card / disk is formatted in, and any "system" files that my be hidden from view that the PSP needs.
All in all i think you got about what you payed for.
If anybody disagrees with anything above, please let me know, as I would gladly say I am wrong if you can prove it.