I do not understand quite well the question, msg.sender define any outside user that interact with the contract, msg.value is the funds that are going to be spend on the contract function.
Pure functions refers to functions that does not read not modify data, it will use the parameters of a function and return a value over those parameters (based on the function logic off course)
Values on msg.value are represented on wei.
1 ether is 1 000 000 000 000 000 000 000 wei so to go from ether to wei we need to add 18 zero’s To go from wei to ether we need to move the decimal point forward 18 places.
Carlos Z